package com.uzai.console.dto.user.wxpubuser;

import com.uzai.console.dto.QueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @Auther: cen
 * @Date: 2022-3-31 14:16:06
 * @Description:
 */
@ApiModel("微信公众号用户分页查询参数")
public class WxpubUserQuery extends QueryParam {

    private static final long serialVersionUID = 7671489005629857756L;

    @ApiModelProperty("昵称(微信昵称)")
    private String nickName;
    @ApiModelProperty("用户ID")
    private Long id;
    @ApiModelProperty("上级用户ID")
    private Long parentId;
    @ApiModelProperty("代理ID")
    private Long agentId;
    @ApiModelProperty("合伙人ID")
    private Long partnerId;
    @ApiModelProperty("手机号")
    private String mobile;
    @ApiModelProperty("用户微信ID")
    private String wxid;
    @ApiModelProperty("用户微信号")
    private String wxNum;
    @ApiModelProperty("支付宝账号")
    private String alipayAccount;
    @ApiModelProperty("注册时间开始")
    private Integer regTimeStart;
    @ApiModelProperty("注册时间结束")
    private Integer regTimeEnd;

    @ApiModelProperty("新注册时间开始")
    private Integer regTimeStartNew;
    @ApiModelProperty("新注册时间结束")
    private Integer regTimeEndNew;

    @ApiModelProperty("淘宝订单尾号")
    private Integer tbLastOrderNo;
    @ApiModelProperty("最后下单时间开始")
    private Integer lastOrderTimeStart;
    @ApiModelProperty("最后下单时间结束")
    private Integer lastOrderTimeEnd;
    @ApiModelProperty("快捷选择（0-未下单；1-下单；2-从未下单）")
    private Integer lastOrderType;
    @ApiModelProperty(value = "最近多少天下单对应的时间搓")
    private Integer lastOrderTypeTime;
    @ApiModelProperty("会员类型")
    private Long userType;
    @ApiModelProperty("会员类型List")
    private List<Long> userTypeList;

    @ApiModelProperty("会员标签查询列表")
    private List<Long> sysTagsList;
    @ApiModelProperty("会员标签查询是否为空(1-启用查询; 0-不启用)")
    private Integer sysTagsNullFlag;
    @ApiModelProperty("会员标签排除列表")
    private List<Long> sysTagsExcludeList;

    @ApiModelProperty("最小余额")
    private Double minBalance;
    @ApiModelProperty("最大余额")
    private Double maxBalance;
    @ApiModelProperty("最小积分")
    private Double minIntegral;
    @ApiModelProperty("最大积分")
    private Double maxIntegral;
    @ApiModelProperty("最小订单量")
    private Integer minOrderCount;
    @ApiModelProperty("最大订单量")
    private Integer maxOrderCount;
    @ApiModelProperty("性别(0未知 1男 2女)")
    private Integer gender;
    @ApiModelProperty("机器人ID")
    private Long deviceUniqueId;

    @ApiModelProperty(value = "是否删除", hidden = true)
    private Integer delStatus;

    @ApiModelProperty(value = "定向比例规则")
    private String priRewardRules;

    @ApiModelProperty("最后群发开始时间")
    private Integer lastGroupSendTimeStart;
    @ApiModelProperty("最后群发结束时间")
    private Integer lastGroupSendTimeEnd;
    @ApiModelProperty("群发时间快捷选择（0-未群发；1-群发过；2-从未群发）")
    private Integer lastGroupSendType;
    @ApiModelProperty(value = "最近多少天群发对应的时间搓(群发时间快捷选择类型为0和1时，此时间搓为必输入)")
    private Integer lastGroupSendTypeTime;

    @ApiModelProperty(value = "免骚扰时间(针对群发消息用户过滤，这个时间发以后已经群发消息的用户不查询出来)", hidden = true)
    private Integer busyGroupSendMsgTime;

    @ApiModelProperty("创建时间开始")
    private Integer createTimeStart;
    @ApiModelProperty("创建时间结束")
    private Integer createTimeEnd;

    @ApiModelProperty("身份（1普通用户，2代理，3合伙人）)")
    private Integer identity;
    @ApiModelProperty("买家类型（1-直推买家，2-非直推卖家）)")
    private Integer buyerType;

    @ApiModelProperty("淘宝SID")
    private String specialId;
    @ApiModelProperty("用户ID列表")
    private List<Long> idList;

    @ApiModelProperty("注册来源")
    private Integer regChannel ;
    @ApiModelProperty("注册来源列表")
    private List<Integer> regChannelList;

    @ApiModelProperty("风险最大值")
    private Integer maxScore;

    @ApiModelProperty("风险最小值")
    private Integer minScore;

    @ApiModelProperty("风险配置id")
    private Long riskLevelId;

    public Integer getMaxScore() {
        return maxScore;
    }

    public void setMaxScore(Integer maxScore) {
        this.maxScore = maxScore;
    }

    public Integer getMinScore() {
        return minScore;
    }

    public void setMinScore(Integer minScore) {
        this.minScore = minScore;
    }

    public Long getRiskLevelId() {
        return riskLevelId;
    }

    public void setRiskLevelId(Long riskLevelId) {
        this.riskLevelId = riskLevelId;
    }

    public Integer getRegChannel() {
        return regChannel;
    }

    public void setRegChannel(Integer regChannel) {
        this.regChannel = regChannel;
    }

    public Long getDeviceUniqueId() {
        return deviceUniqueId;
    }

    public void setDeviceUniqueId(Long deviceUniqueId) {
        this.deviceUniqueId = deviceUniqueId;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Long getAgentId() {
        return agentId;
    }

    public void setAgentId(Long agentId) {
        this.agentId = agentId;
    }

    public Long getPartnerId() {
        return partnerId;
    }

    public void setPartnerId(Long partnerId) {
        this.partnerId = partnerId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getWxid() {
        return wxid;
    }

    public void setWxid(String wxid) {
        this.wxid = wxid;
    }

    public String getWxNum() {
        return wxNum;
    }

    public void setWxNum(String wxNum) {
        this.wxNum = wxNum;
    }

    public String getAlipayAccount() {
        return alipayAccount;
    }

    public void setAlipayAccount(String alipayAccount) {
        this.alipayAccount = alipayAccount;
    }

    public Integer getLastOrderType() {
        return lastOrderType;
    }

    public void setLastOrderType(Integer lastOrderType) {
        this.lastOrderType = lastOrderType;
    }

    public Long getUserType() {
        return userType;
    }

    public void setUserType(Long userType) {
        this.userType = userType;
    }

    public Double getMinBalance() {
        return minBalance;
    }

    public void setMinBalance(Double minBalance) {
        this.minBalance = minBalance;
    }

    public Double getMaxBalance() {
        return maxBalance;
    }

    public void setMaxBalance(Double maxBalance) {
        this.maxBalance = maxBalance;
    }

    public Integer getMinOrderCount() {
        return minOrderCount;
    }

    public void setMinOrderCount(Integer minOrderCount) {
        this.minOrderCount = minOrderCount;
    }

    public Integer getMaxOrderCount() {
        return maxOrderCount;
    }

    public void setMaxOrderCount(Integer maxOrderCount) {
        this.maxOrderCount = maxOrderCount;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getDelStatus() {
        if(delStatus == null){
            delStatus = 0;
        }
        return delStatus;
    }

    public void setDelStatus(Integer delStatus) {
        this.delStatus = delStatus;
    }

    public Integer getRegTimeStart() {
        return regTimeStart;
    }

    public void setRegTimeStart(Integer regTimeStart) {
        this.regTimeStart = regTimeStart;
    }

    public Integer getRegTimeEnd() {
        return regTimeEnd;
    }

    public void setRegTimeEnd(Integer regTimeEnd) {
        this.regTimeEnd = regTimeEnd;
    }

    public Integer getLastOrderTimeStart() {
        return lastOrderTimeStart;
    }

    public void setLastOrderTimeStart(Integer lastOrderTimeStart) {
        this.lastOrderTimeStart = lastOrderTimeStart;
    }

    public Integer getLastOrderTimeEnd() {
        return lastOrderTimeEnd;
    }

    public void setLastOrderTimeEnd(Integer lastOrderTimeEnd) {
        this.lastOrderTimeEnd = lastOrderTimeEnd;
    }

    public Integer getLastOrderTypeTime() {
        return lastOrderTypeTime;
    }

    public void setLastOrderTypeTime(Integer lastOrderTypeTime) {
        this.lastOrderTypeTime = lastOrderTypeTime;
    }

    public List<Long> getUserTypeList() {
        return userTypeList;
    }

    public void setUserTypeList(List<Long> userTypeList) {
        this.userTypeList = userTypeList;
    }

    public Integer getIdentity() {
        return identity;
    }

    public void setIdentity(Integer identity) {
        this.identity = identity;
    }

    public Integer getBuyerType() {
        return buyerType;
    }

    public void setBuyerType(Integer buyerType) {
        this.buyerType = buyerType;
    }

    public Integer getCreateTimeStart() {
        return createTimeStart;
    }

    public void setCreateTimeStart(Integer createTimeStart) {
        this.createTimeStart = createTimeStart;
    }

    public Integer getCreateTimeEnd() {
        return createTimeEnd;
    }

    public void setCreateTimeEnd(Integer createTimeEnd) {
        this.createTimeEnd = createTimeEnd;
    }

    public String getPriRewardRules() {
        return priRewardRules;
    }

    public void setPriRewardRules(String priRewardRules) {
        this.priRewardRules = priRewardRules;
    }

    public Integer getBusyGroupSendMsgTime() {
        return busyGroupSendMsgTime;
    }

    public void setBusyGroupSendMsgTime(Integer busyGroupSendMsgTime) {
        this.busyGroupSendMsgTime = busyGroupSendMsgTime;
    }

    public List<Long> getSysTagsList() {
        return sysTagsList;
    }

    public void setSysTagsList(List<Long> sysTagsList) {
        this.sysTagsList = sysTagsList;
    }

    public Integer getSysTagsNullFlag() {
        return sysTagsNullFlag;
    }

    public void setSysTagsNullFlag(Integer sysTagsNullFlag) {
        this.sysTagsNullFlag = sysTagsNullFlag;
    }

    public Integer getTbLastOrderNo() {
        return tbLastOrderNo;
    }

    public void setTbLastOrderNo(Integer tbLastOrderNo) {
        this.tbLastOrderNo = tbLastOrderNo;
    }

    public List<Long> getSysTagsExcludeList() {
        return sysTagsExcludeList;
    }

    public void setSysTagsExcludeList(List<Long> sysTagsExcludeList) {
        this.sysTagsExcludeList = sysTagsExcludeList;
    }

    public Integer getLastGroupSendTimeStart() {
        return lastGroupSendTimeStart;
    }

    public void setLastGroupSendTimeStart(Integer lastGroupSendTimeStart) {
        this.lastGroupSendTimeStart = lastGroupSendTimeStart;
    }

    public Integer getLastGroupSendTimeEnd() {
        return lastGroupSendTimeEnd;
    }

    public void setLastGroupSendTimeEnd(Integer lastGroupSendTimeEnd) {
        this.lastGroupSendTimeEnd = lastGroupSendTimeEnd;
    }

    public Integer getLastGroupSendType() {
        return lastGroupSendType;
    }

    public void setLastGroupSendType(Integer lastGroupSendType) {
        this.lastGroupSendType = lastGroupSendType;
    }

    public Integer getLastGroupSendTypeTime() {
        return lastGroupSendTypeTime;
    }

    public void setLastGroupSendTypeTime(Integer lastGroupSendTypeTime) {
        this.lastGroupSendTypeTime = lastGroupSendTypeTime;
    }

    public String getSpecialId() {
        return specialId;
    }

    public void setSpecialId(String specialId) {
        this.specialId = specialId;
    }

    public List<Long> getIdList() {
        return idList;
    }

    public void setIdList(List<Long> idList) {
        this.idList = idList;
    }

    public Integer getRegTimeStartNew() {
        return regTimeStartNew;
    }

    public void setRegTimeStartNew(Integer regTimeStartNew) {
        this.regTimeStartNew = regTimeStartNew;
    }

    public Integer getRegTimeEndNew() {
        return regTimeEndNew;
    }

    public void setRegTimeEndNew(Integer regTimeEndNew) {
        this.regTimeEndNew = regTimeEndNew;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Double getMinIntegral() {
        return minIntegral;
    }

    public void setMinIntegral(Double minIntegral) {
        this.minIntegral = minIntegral;
    }

    public Double getMaxIntegral() {
        return maxIntegral;
    }

    public void setMaxIntegral(Double maxIntegral) {
        this.maxIntegral = maxIntegral;
    }

    public List<Integer> getRegChannelList() {
        return regChannelList;
    }

    public void setRegChannelList(List<Integer> regChannelList) {
        this.regChannelList = regChannelList;
    }
}
